package day09API.file;

import java.io.File;
import java.io.FileFilter;

public class Demo06 {
    public static void main(String[] args) {
            /*
             * 有条件的列出目录的内容
             *   listFiles(过滤条件)
             * - 有条件的列出目录 的内容, 满足条件的文件作为返回数组的成员
             * - 不满足条件的文件被过滤掉
             * - 过滤条件是一个接口, 包含一个过滤方法
             *    listFiles 会自动调用过滤方法,筛选文件
             * 过滤条件: FileFilter
             * Filter: 过滤器
             */
            //过滤条件: 筛选 .txt 的文件
            File dir = new File("./File");
            if (dir.isDirectory()){
                File[] files = dir.listFiles(new FileFilter() {
                    @Override
                    public boolean accept(File pathname) {
                        String name = pathname.getName();
                        return name.endsWith(".txt");
                    }
                });
                for(File file: files){
                    System.out.println(file);
                }
            }
            if (dir.isDirectory()){
                File[] files = dir.listFiles((File pathname)->{return pathname.getName().endsWith(".txt");});//lambda表达式

                for(File file: files){
                    System.out.println(file);
                }
            }
            if (dir.isDirectory()){
                File[] files = dir.listFiles(pathname -> pathname.getName().endsWith(".txt"));//lambda表达式最终版，要求接口中只能有一个抽象方法
                for(File file: files){
                    System.out.println(file);
                }
            }
    }
}
